{layout name="../../admin/view/layout/main" /}
{:breadcrumb(['UI 示例:example/layout/index', '组件:example/components/index', '滚动监听'])}
<div class="row">

    <div class="col-lg-12">
      <div class="card">
        <div class="card-body">

          <p>根据滚动位置自动更新 Bootstrap 导航或列表组组件，以指示当前在视口中哪个链接处于活动状态。</p>
          <h6>怎么运行的</h6>
          <p>Scrollspy 有一些要求才能正常运行：</p>
          <ul>
            <li>它必须用于 Bootstrap 导航组件或列表组。</li>
            <li>Scrollspy 需要 <code>position: relative</code> 在你正在监视的元素上，通常是 <code>&lt;body&gt;</code>。</li>
            <li>锚 (<code>&lt;a&gt;</code>) 是必需的，并且必须指向具有该 id 的元素。</li>
          </ul>
          <p>成功实施后，您的导航或列表组将相应更新，根据关联的目标将 <code>.active</code> 类从一项移动到下一项。</p>
          <div class="callout callout-info mb-3">
            <strong>可滚动容器和键盘访问</strong>
            <p>如果您正在制作一个可滚动的容器（<code>&lt;body&gt;</code> 除外），请确保设置了 <code>height</code> 并 <code>overflow-y: scroll;</code> 应用于它 - 与 <code>tabindex="0"</code> 一起确保键盘访问。</p>
          </div>

          <h6>导航栏中的示例</h6>
          <p>滚动导航栏下方的区域并观察活动类的变化。 下拉项目也将突出显示。</p>
          <div class="border-example">
            <nav id="navbar-example2" class="navbar navbar-light bg-light px-3">
              <a class="navbar-brand" href="#">导航栏</a>
              <ul class="nav nav-pills">
                <li class="nav-item">
                  <a class="nav-link active" href="#scrollspyHeading1">牡丹亭</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="#scrollspyHeading2">西厢记</a>
                </li>
                <li class="nav-item dropdown">
                  <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">四大名著</a>
                  <ul class="dropdown-menu">
                    <li><a class="dropdown-item" href="#scrollspyHeading3">水浒传</a></li>
                    <li><a class="dropdown-item" href="#scrollspyHeading4">红楼梦</a></li>
                    <li><hr class="dropdown-divider"></li>
                    <li><a class="dropdown-item" href="#scrollspyHeading5">西游记</a></li>
                    <li><a class="dropdown-item" href="#scrollspyHeading6">三国演义</a></li>
                  </ul>
                </li>
              </ul>
            </nav>
            <div data-bs-spy="scroll" data-bs-target="#navbar-example2" data-bs-offset="0" class="scrollspy-example" tabindex="0">
              <h4 id="scrollspyHeading1">牡丹亭</h4>
              <p>《牡丹亭》，是明朝剧作家汤显祖的代表作之一，也是他一生最得意之作，他曾言“吾一生四梦，得意处唯在《牡丹》。”创作于1598年。全名《牡丹亭还魂记》，即《还魂记》，也称《还魂梦》或《牡丹亭梦》，传奇剧本，二卷，五十五出，据明人小说《杜丽娘慕色还魂》而成，明代南曲代表作。共55出，描写杜丽娘和柳梦梅的爱情故事。它与汤显祖的另外三部作品并称为“临川四梦”。</p>
              <p>《牡丹亭》与《紫钗记》、《邯郸记》和《南柯记》合称“玉茗堂四梦”，也叫“临川四梦”。受到了儒、释、道三家学说的不同影响，其故事背景就描写的是腐朽的儒家封建体系，故事中出现的花神却是道家的产物，而女主角杜丽娘身死又还魂乃是佛家的三生说。总之，汤显祖在这部《牡丹亭》中倾注了自己毕生的思想感情，完美的诠释了他的“至情说”。</p>
              <h4 id="scrollspyHeading2">西厢记</h4>
              <p>《西厢记》全名《崔莺莺待月西厢记》。共5本21折5楔子。作者王实甫，名德信，元代著名杂剧作家，河北省保定市定兴（今定兴县）人。他一生写作了14部剧本，著有杂剧十四种，现存《西厢记》、《丽春堂》、《破窑记》三种。《破窑记》写刘月娥和吕蒙正悲欢离合的故事，有人怀疑不是王实甫的手笔。另有《贩茶船》、《芙蓉亭》二种，各传有曲文一折。《西厢记》大约写于元贞、大德年间是他的代表作。这个剧一上舞台就惊倒四座，博得男女青年的喜爱，被誉为“西厢记天下夺魁”。历史上，“愿普天下有情人都成眷属”这一美好的愿望，不知成为多少文学作品的主题，《西厢记》便是描绘这一主题的最成功的戏剧。</p>
              <h4 id="scrollspyHeading3">水浒传</h4>
              <p>《水浒传》，是中国四大名著之一，全书描写北宋末年以宋江为首的108位好汉在梁山聚义，以及聚义之后接受招安、四处征战的故事。《水浒传》也是汉语文学中最具备史诗特征的作品之一。是中国历史上最早用白话文写成的章回小说之一。版本众多，流传极广，脍炙人口，对中国乃至东亚的叙事文学都有极其深远的影响。</p>
              <p>《水浒传》是一部以描写古代农民起义为题材的长篇小说。它形象地描绘了农民起义从发生、发展直至失败的全过程，深刻揭示了起义的社会根源，满腔热情地歌颂了起义英雄的反抗斗争和他们的社会理想，也具体揭示了起义失败的内在历史原因。</p>
              <h4 id="scrollspyHeading4">红楼梦</h4>
              <p>《红楼梦》，中国古典四大名著之首，清代作家曹雪芹创作的章回体长篇小说，又名《石头记》《金玉缘》。此书分为120回“程本”和80回“脂本”两种版本系统。新版通行本前80回据脂本汇校，后40回据程本汇校，署名“曹雪芹著，无名氏续，程伟元、高鹗整理”。后40回作者尚有争议，但是对于矮化甚至腰斩后40回的极端倾向也应保持警惕。</p>
              <p>《红楼梦》是一部具有世界影响力的人情小说作品，举世公认的中国古典小说巅峰之作，中国封建社会的百科全书，传统文化的集大成者。小说以贾、史、王、薛四大家族的兴衰为背景，以贾府的家庭琐事、闺阁闲情为脉络，以贾宝玉、林黛玉、薛宝钗的爱情婚姻故事为主线，刻画了以贾宝玉和金陵十二钗为中心的正邪两赋有情人的人性美和悲剧美。通过家族悲剧、女儿悲剧及主人公的人生悲剧，揭示出封建末世危机 。</p>
              <p>《红楼梦》的作者具有初步的民主主义思想，他对现实社会包括宫廷及官场的黑暗、封建贵族阶级及其家庭的腐朽，封建的科举制度、婚姻制度、奴婢制度、等级制度，以及与此相适应的社会统治思想即孔孟之道和程朱理学、社会道德观念等，都进行了深刻的批判，并提出了朦胧的带有初步民主主义性质的理想和主张。《红楼梦》以“大旨谈情，实录其事”自勉，只按自己的事体情理，按迹循踪，摆脱旧套，新鲜别致，取得了非凡的艺术成就。“真事隐去，假语村言”的特殊笔法更是令后世读者脑洞大开，揣测之说久而遂多。围绕《红楼梦》的品读研究形成了一门显学——红学。</p>
              <h4 id="scrollspyHeading5">西游记</h4>
              <p>《西游记》为明代小说家吴承恩所著。取材于《大唐西域记》和民间传说、元杂剧。宋代《大唐三藏取经诗话》（本名《大唐三藏取经记》）是西游记故事见于说话文字的最早雏形，其中，唐僧就是以玄奘法师为原型的。</p>
            <p>作为中国古代第一部浪漫主义长篇神魔小说，该书深刻地描绘了当时的社会现实，是魔幻现实主义的开创作品。先写了孙悟空出世，然后遇见了唐僧、猪八戒和沙和尚三人，但还是主要描写了孙悟空、猪八戒、沙和尚三人保护唐僧西行取经，唐僧从投胎到取经受了九九八十一难，一路降妖伏魔，九九归一，终于到达西天见到如来佛祖，最终五圣成真。</p>
            <p>自《西游记》问世以来在民间广为流传，各式各样的版本层出不穷，明代刊本有六种，清代刊本、抄本也有七种，典籍所记已佚版本十三种。鸦片战争以后，中国古典文学作品大量被译为西文，西渐欧美，已有英、法、德、意、西、手语、世（世界语）、俄、捷、罗、波、日、朝、越等文种。并发表了不少研究论文和专著，对这部小说作出了极高的评价。被尊为中国古典四大名著之一。</p>
              <h4 id="scrollspyHeading6">三国演义</h4>
              <p>《三国演义》是中国古典四大名著之一，是中国第一部长篇章回体历史演义小说，全名为《三国志通俗演义》（又称《三国志演义》），作者是元末明初的著名小说家罗贯中。</p>
              <p>《三国演义》描写了从东汉末年到西晋初年之间近105年的历史风云，以描写战争为主，反映了东汉末年的群雄割据混战和汉、魏、吴三国之间的政治和军事斗争和最终司马炎一统三国，建立晋朝的故事。反映了三国时代各类社会斗争与矛盾的转化，并概括了这一时代的历史巨变，塑造了一批叱咤风云的三国英雄人物。全书可大致分为黄巾之乱、董卓之乱、群雄逐鹿、三国鼎立、三国归晋五大部分。在广阔的背景上，上演了一幕幕气势磅礴的战争场面。编者罗贯中将兵法三十六计融于字里行间，既有情节，也有兵法韬略。</p>
            </div>
          </div>
          <pre>&lt;nav id="navbar-example2" class="navbar navbar-light bg-light px-3"&gt;
  &lt;a class="navbar-brand" href="#"&gt;导航栏&lt;/a&gt;
  &lt;ul class="nav nav-pills"&gt;
    &lt;li class="nav-item"&gt;
      &lt;a class="nav-link" href="#scrollspyHeading1"&gt;牡丹亭&lt;/a&gt;
    &lt;/li&gt;
    &lt;li class="nav-item"&gt;
      &lt;a class="nav-link" href="#scrollspyHeading2"&gt;西厢记&lt;/a&gt;
    &lt;/li&gt;
    &lt;li class="nav-item dropdown"&gt;
      &lt;a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false"&gt;四大名著&lt;/a&gt;
      &lt;ul class="dropdown-menu"&gt;
        &lt;li&gt;&lt;a class="dropdown-item" href="#scrollspyHeading3"&gt;水浒传&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a class="dropdown-item" href="#scrollspyHeading4"&gt;红楼梦&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;hr class="dropdown-divider"&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a class="dropdown-item" href="#scrollspyHeading5"&gt;西游记&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a class="dropdown-item" href="#scrollspyHeading6"&gt;三国演6&lt;/a&gt;&lt;/li&gt;
      &lt;/ul&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/nav&gt;
&lt;div data-bs-spy="scroll" data-bs-target="#navbar-example2" data-bs-offset="0" class="scrollspy-example" tabindex="0"&gt;
  &lt;h4 id="scrollspyHeading1"&gt;牡丹亭&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
  &lt;h4 id="scrollspyHeading2"&gt;西厢记&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
  &lt;h4 id="scrollspyHeading3"&gt;水浒传&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
  &lt;h4 id="scrollspyHeading4"&gt;红楼梦&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
  &lt;h4 id="scrollspyHeading5"&gt;西游记&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
  &lt;h4 id="scrollspyHeading6"&gt;三国演义&lt;/h4&gt;
  &lt;p&gt;...&lt;/p&gt;
&lt;/div&gt;</pre>

          <h6>嵌套导航示例</h6>
          <p>Scrollspy 也适用于嵌套的 <code>.navs</code>。 如果嵌套的 <code>.nav</code> 是 <code>.active</code>，则其父级也将是 <code>.active</code>。 滚动导航栏旁边的区域并观察活动类的变化。</p>
          <div class="border-example">
            <div class="row">
              <div class="col-4">
                <nav id="navbar-example3" class="navbar navbar-light bg-light flex-column align-items-stretch p-3">
                  <a class="navbar-brand" href="#">导航栏</a>
                  <nav class="nav nav-pills flex-column">
                    <a class="nav-link active" href="#item-1">模板语法</a>
                    <nav class="nav nav-pills flex-column">
                      <a class="nav-link ms-3 my-1" href="#item-1-1">插值</a>
                      <a class="nav-link ms-3 my-1" href="#item-1-2">指令</a>
                    </nav>
                    <a class="nav-link" href="#item-2">计算属性和侦听器</a>
                    <a class="nav-link" href="#item-3">Class 与 Style 绑定</a>
                    <nav class="nav nav-pills flex-column">
                      <a class="nav-link ms-3 my-1" href="#item-3-1">绑定 HTML Class</a>
                      <a class="nav-link ms-3 my-1" href="#item-3-2">绑定内联样式</a>
                    </nav>
                  </nav>
                </nav>
              </div>
              <div class="col-8">
                <div data-bs-spy="scroll" data-bs-target="#navbar-example3" data-bs-offset="0" class="scrollspy-example-2" tabindex="0">
<h4 id="item-1">模板语法</h4>
                  <p>Vue.js 使用了基于 HTML 的模板语法，允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML，所以能被遵循规范的浏览器和 HTML 解析器解析。</p>
                  <p>在底层的实现上，Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统，Vue 能够智能地计算出最少需要重新渲染多少组件，并把 DOM 操作次数减到最少。</p>
                  <h5 id="item-1-1">插值</h5>
                  <p>数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值：</p>
                  <pre>&lt;span&gt;Message: {{ msg }}&lt;/span&gt;</pre>
                  <p>Mustache 标签将会被替代为对应数据对象上 <code>msg</code> property 的值。无论何时，绑定的数据对象上 <code>msg</code> property 发生了改变，插值处的内容都会更新。</p>
                  <h5 id="item-1-2">指令</h5>
                  <p>指令 (Directives) 是带有 <code>v-</code> 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 (<code>v-for</code> 是例外情况，稍后我们再讨论)。指令的职责是，当表达式的值改变时，将其产生的连带影响，响应式地作用于 DOM。回顾我们在介绍中看到的例子：</p>
                  <h4 id="item-2">计算属性和侦听器</h4>
                  <p>模板内的表达式非常便利，但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。例如：</p>
                  <pre>&lt;div id="example"&gt;
  {{ message.split('').reverse().join('') }}
&lt;/div&gt;</pre>
                  <p>在这个地方，模板不再是简单的声明式逻辑。你必须看一段时间才能意识到，这里是想要显示变量 <code>message</code> 的翻转字符串。当你想要在模板中多包含此处的翻转字符串时，就会更加难以处理。</p>
                  <h4 id="item-3">Class 与 Style 绑定</h4>
                  <p>操作元素的 <code>class</code> 列表和内联样式是数据绑定的一个常见需求。因为它们都是 <code>attribute</code>，所以我们可以用 <code>v-bind</code> 处理它们：只需要通过表达式计算出字符串结果即可。不过，字符串拼接麻烦且易错。因此，在将 <code>v-bind</code> 用于 <code>class</code> 和 <code>style</code> 时，Vue.js 做了专门的增强。表达式结果的类型除了字符串之外，还可以是对象或数组。</p>
                  <h5 id="item-3-1">绑定 HTML Class</h5>
                  <p>我们可以传给 <code>v-bind:class</code> 一个对象，以动态地切换 class：</p>
                  <pre>&lt;div v-bind:class="{ active: isActive }"&gt;&lt;/div&gt;</pre>
                  <p>上面的语法表示 <code>active</code> 这个 class 存在与否将取决于数据 property isActive 的 truthiness。</p>
                  <p>你可以在对象中传入更多字段来动态切换多个 class。此外，v-bind:class 指令也可以与普通的 class attribute 共存。当有如下模板：</p>
                  <pre>&lt;div
  class="static"
  v-bind:class="{ active: isActive, 'text-danger': hasError }"
&gt;&lt;/div&gt;</pre>
                  <p>和如下 data：</p>
                  <pre>data: {
  isActive: true,
  hasError: false
}</pre>
                  <p>结果渲染为：</p>
                  <pre>&lt;div class="static active"&gt;&lt;/div&gt;</pre>
                  <h5 id="item-3-2">绑定内联样式</h5>
                  <p><code>v-bind:style</code> 的对象语法十分直观——看着非常像 CSS，但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case，记得用引号括起来) 来命名：</p>
                </div>
              </div>
            </div>
          </div>

          <h6>列表组示例</h6>
          <p>Scrollspy 也适用于 <code>.list-groups</code>。 滚动列表组旁边的区域并观察活动班级的变化。</p>
          <div class="border-example">
            <div class="row">
              <div class="col-4">
                <div id="list-example" class="list-group">
                  <a class="list-group-item list-group-item-action active" href="#list-item-1">水浒传</a>
                  <a class="list-group-item list-group-item-action" href="#list-item-2">红楼梦</a>
                  <a class="list-group-item list-group-item-action" href="#list-item-3">西游记</a>
                  <a class="list-group-item list-group-item-action" href="#list-item-4">三国演义</a>
                </div>
              </div>
              <div class="col-8">
                <div data-bs-spy="scroll" data-bs-target="#list-example" data-bs-offset="0" class="scrollspy-example spy-example-3" tabindex="0">
                  <h4 id="list-item-1">水浒传</h4>
                  <p>《水浒传》，是中国四大名著之一，全书描写北宋末年以宋江为首的108位好汉在梁山聚义，以及聚义之后接受招安、四处征战的故事。《水浒传》也是汉语文学中最具备史诗特征的作品之一。是中国历史上最早用白话文写成的章回小说之一。版本众多，流传极广，脍炙人口，对中国乃至东亚的叙事文学都有极其深远的影响。</p>
                  <p>《水浒传》是一部以描写古代农民起义为题材的长篇小说。它形象地描绘了农民起义从发生、发展直至失败的全过程，深刻揭示了起义的社会根源，满腔热情地歌颂了起义英雄的反抗斗争和他们的社会理想，也具体揭示了起义失败的内在历史原因。</p>
                  <h4 id="list-item-2">红楼梦</h4>
                  <p>《红楼梦》，中国古典四大名著之首，清代作家曹雪芹创作的章回体长篇小说，又名《石头记》《金玉缘》。此书分为120回“程本”和80回“脂本”两种版本系统。新版通行本前80回据脂本汇校，后40回据程本汇校，署名“曹雪芹著，无名氏续，程伟元、高鹗整理”。后40回作者尚有争议，但是对于矮化甚至腰斩后40回的极端倾向也应保持警惕。</p>
                  <p>《红楼梦》是一部具有世界影响力的人情小说作品，举世公认的中国古典小说巅峰之作，中国封建社会的百科全书，传统文化的集大成者。小说以贾、史、王、薛四大家族的兴衰为背景，以贾府的家庭琐事、闺阁闲情为脉络，以贾宝玉、林黛玉、薛宝钗的爱情婚姻故事为主线，刻画了以贾宝玉和金陵十二钗为中心的正邪两赋有情人的人性美和悲剧美。通过家族悲剧、女儿悲剧及主人公的人生悲剧，揭示出封建末世危机 。</p>
                  <p>《红楼梦》的作者具有初步的民主主义思想，他对现实社会包括宫廷及官场的黑暗、封建贵族阶级及其家庭的腐朽，封建的科举制度、婚姻制度、奴婢制度、等级制度，以及与此相适应的社会统治思想即孔孟之道和程朱理学、社会道德观念等，都进行了深刻的批判，并提出了朦胧的带有初步民主主义性质的理想和主张。《红楼梦》以“大旨谈情，实录其事”自勉，只按自己的事体情理，按迹循踪，摆脱旧套，新鲜别致，取得了非凡的艺术成就。“真事隐去，假语村言”的特殊笔法更是令后世读者脑洞大开，揣测之说久而遂多。围绕《红楼梦》的品读研究形成了一门显学——红学。</p>
                  <h4 id="list-item-3">西游记</h4>
                  <p>《西游记》为明代小说家吴承恩所著。取材于《大唐西域记》和民间传说、元杂剧。宋代《大唐三藏取经诗话》（本名《大唐三藏取经记》）是西游记故事见于说话文字的最早雏形，其中，唐僧就是以玄奘法师为原型的。</p>
                  <p>作为中国古代第一部浪漫主义长篇神魔小说，该书深刻地描绘了当时的社会现实，是魔幻现实主义的开创作品。先写了孙悟空出世，然后遇见了唐僧、猪八戒和沙和尚三人，但还是主要描写了孙悟空、猪八戒、沙和尚三人保护唐僧西行取经，唐僧从投胎到取经受了九九八十一难，一路降妖伏魔，九九归一，终于到达西天见到如来佛祖，最终五圣成真。</p>
                  <p>自《西游记》问世以来在民间广为流传，各式各样的版本层出不穷，明代刊本有六种，清代刊本、抄本也有七种，典籍所记已佚版本十三种。鸦片战争以后，中国古典文学作品大量被译为西文，西渐欧美，已有英、法、德、意、西、手语、世（世界语）、俄、捷、罗、波、日、朝、越等文种。并发表了不少研究论文和专著，对这部小说作出了极高的评价。被尊为中国古典四大名著之一。</p>
                  <h4 id="list-item-4">三国演义</h4>
                  <p>《三国演义》是中国古典四大名著之一，是中国第一部长篇章回体历史演义小说，全名为《三国志通俗演义》（又称《三国志演义》），作者是元末明初的著名小说家罗贯中。</p>
                  <p>《三国演义》描写了从东汉末年到西晋初年之间近105年的历史风云，以描写战争为主，反映了东汉末年的群雄割据混战和汉、魏、吴三国之间的政治和军事斗争和最终司马炎一统三国，建立晋朝的故事。反映了三国时代各类社会斗争与矛盾的转化，并概括了这一时代的历史巨变，塑造了一批叱咤风云的三国英雄人物。全书可大致分为黄巾之乱、董卓之乱、群雄逐鹿、三国鼎立、三国归晋五大部分。在广阔的背景上，上演了一幕幕气势磅礴的战争场面。编者罗贯中将兵法三十六计融于字里行间，既有情节，也有兵法韬略。</p>
                </div>
              </div>
            </div>
          </div>

        </div>
      </div>
    </div>

  </div>